#include <iostream>
#include <map>
#include <algorithm>
#include <string>
#include <time.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
//选择排序算法通过选择和交换来实现排序，其排序流程如下：
// (1)首先从原始数组中选择最小的一个数据，将其和位于第1个位置的数据交换。
// (2)接着从剩下的n-1个数据中选择次小的一个元素，将其和第2个位置的数据交换。
// (3)然后，这样不断重复，直到最后两个数据完成交换。最后，便完成了对原始数组从小到大
// 的排序。
void SelectionSort(int *a,int len);
int main()
{   int needSort[]={112,20,150,360,333,563};
    //cout<<sizeof(needSort)/sizeof(int)<<endl;
    SelectionSort(needSort,sizeof(needSort)/sizeof(int));
    // for(int i=0;i<3;i++){cout<<i<<" "<<endl;}
    for (int i=0;i<sizeof(needSort)/sizeof(int);i++)
    {
        cout<<needSort[i]<<" ";
    }
    return 0;
}
void SelectionSort(int *a,int len)
{
    int i,j,k,h;
    int temp;
    for(i=0;i<len-1;i++)
    {
        k=i;
        for(j=i+1;j<len;j++)
        {
            if(a[j]<a[k])
            {
                k=j;
            }
        }                  //注意这里的括号，是让剩余的数组先循环比较一遍
            if(k!=i)
            {
                temp=a[i];
                a[i]=a[k];
                a[k]=temp;
            }
    }   
}